Various implementations of remote communications technologies, such as instant messaging, voice messaging, and video conferencing, to name just a few examples, allow users to communicate with each other on a one-to-one basis, in a group, or both. A group typically is a defined list of people who participate in the communication. For example, in the context of instant messaging, a user may specify a group, and instantiate a communications session among the members of that group. The group may be previously defined, defined by an administrator, defined at a server, defined at the time that a communications session is initiated, or some combination of the foregoing.
Exemplary features of an instant messaging service are described, for example, in publicly available documents from the Open Mobile Alliance, such as WV-041 Features and Functions (OMA-IMPS-WV-Features-Functions-V1_2-20050125-A), available from: <http://www.openmobilealliance.org/release_program/imps_v1_2_1.html>.
In some implementations, users may make use of a presence service to allow users to see who is available for communication, also referred to as being “on-line.” By providing users with information about who is “present” on the system, a user may select one or more of those users who are on-line for a communications session. A communications service, typically via client software, communicates to a first user information describing whether a second user is available or unavailable, for example, whether the user is on-line or off-line. This may be determined by any suitable technique, including without limitation a manual configuration on the part of the second user, whether the second user has a client that is connected to a server, the status or activity level of the second user's client, and so on.
The first user may “subscribe” to presence information about the second user, for example by including the second user in a friends list, including them in a group, or in some other manner. Once subscribed to the second user's presence information, the first user's client software will provide to the user updates about the presence of the second user. Depending on configuration, the first user's client may poll the server-, the second user's client, or both for presence information, or a server may do so, or the second user's client may periodically provide presence information to a server, or some combination of the foregoing. It may be that a server to which the second user's client connects makes determinations about the presence of the second user based on other interaction with the client of the second user. In any case, the information is communicated to the first user's client.
In some services, users can prevent certain other users from having access to their presence information by “blocking” them. Presence updates for a blocking user are not delivered to a “blocked” user. Thus, even if a blocked user has requested presence information regarding a blocking user, the blocked user will not be provided with that information.
In many systems, in order to preserve the privacy of blocking users, especially if they are not accessing the service anonymously, blocked users are not told that they have been blocked. In some such systems, the service may provide presence updates to the blocked user's client that indicate to the blocked user that the blocking user is off-line, even if the blocking user is on-line. This mechanism is sometimes referred to as “polite blocking.”